pub struct Package {
name: String,
arch: String,
- multi_arch: String,
+ multi_arch: Option<String>,
section: Option<String>,
depends: Vec<String>,
recommends: Vec<String>,
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
writeln!(f, "Package: {}", self.name)?;
writeln!(f, "Architecture: {}", self.arch)?;
- writeln!(f, "Multi-Arch: {}", self.multi_arch)?;
+ if let Some(ref multi_arch) = self.multi_arch {
+ writeln!(f, "Multi-Arch: {}", multi_arch)?;
+ }
if let Some(section) = &self.section {
writeln!(f, "Section: {}", section)?;
}
// duplicate packages in the Debian archive. For very large crates we
// will eventually want to make debcargo generate -data packages that
// are arch:all and have the arch:any -dev packages depend on it.
- multi_arch: "same".to_string(),
+ multi_arch: Some("same".to_string()),
section: None,
depends,
recommends,
Package {
name,
arch: "any".to_string(),
- multi_arch: "allowed".to_string(),
+ multi_arch: None,
section: section.map(|s| s.to_string()),
depends: vec![
"${misc:Depends}".to_string(),
assert!(instance.is_ok());
let instance = instance.unwrap();
assert_eq!("any", instance.arch);
- assert_eq!("same", instance.multi_arch);
+ assert_eq!(Some("same"), instance.multi_arch.as_deref());
assert_eq!(None, instance.section);
assert_eq!(vec!["${misc:Depends}"], instance.depends);
assert_eq!(Vec::<String>::new(), instance.recommends);
let instance = Package::new_bin(basename, name_suffix, section, summary, description);
assert_eq!("any", instance.arch);
- assert_eq!("allowed", instance.multi_arch);
+ assert_eq!(None, instance.multi_arch);
assert_eq!(Some("rust".to_owned()), instance.section);
assert_eq!(
vec!["${misc:Depends}", "${shlibs:Depends}", "${cargo:Depends}"],
);
let instance = Package::new_bin(basename, name_suffix, section, summary, description);
- let expected = "Package: rsa\nArchitecture: any\nMulti-Arch: allowed\nSection: rust\nDepends:\n ${misc:Depends},\n ${shlibs:Depends},\n ${cargo:Depends}\nRecommends:\n ${cargo:Recommends}\nSuggests:\n ${cargo:Suggests}\nProvides:\n ${cargo:Provides}\nBuilt-Using: ${cargo:Built-Using}\nStatic-Built-Using: ${cargo:Static-Built-Using}\nDescription: \n description_start\n .\n empty lines\n .\n description_stop\n";
+ let expected = "Package: rsa\nArchitecture: any\nSection: rust\nDepends:\n ${misc:Depends},\n ${shlibs:Depends},\n ${cargo:Depends}\nRecommends:\n ${cargo:Recommends}\nSuggests:\n ${cargo:Suggests}\nProvides:\n ${cargo:Provides}\nBuilt-Using: ${cargo:Built-Using}\nStatic-Built-Using: ${cargo:Static-Built-Using}\nDescription: \n description_start\n .\n empty lines\n .\n description_stop\n";
assert_eq!(expected, instance.to_string());
}